package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.OrderBean;
import org.apache.tomcat.jni.Local;

import java.time.LocalDate;
import java.util.List;

/**
 * 订单业务接口
 */
public interface IOrderService {
    /**
     *
     *  从登陆信息中取出购物信息，计算购物车总价，封装订单。
     *  添加订单信息
     *  查询购物车集合
     *  完成订单明细的添加，
     *  最后根据用户id删除该用户的购物车信息。
     * @param order 订单对象
     */
    public void add(OrderBean order);

    /**
     * 动态分页查询订单
     * @param pageNO 页码
     * @param userId 用户id
     * @param status 状态
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 订单分页对象
     */
    public IPage<OrderBean> cutByItem(Integer pageNO, Integer userId, String status,
                                      LocalDate startDate, LocalDate endDate);

    /**
     * 查询发货中的订单
     * @return 订单对象集合
     */
    public List<OrderBean> findByStatus();


    /**
     * 按订单id查询订单详情，同时查询订单明细集合
     * 订单明细信息需要查询商品信息
     * @param id 订单对象
     * @return 订单对象
     */
    public OrderBean findById(Integer id);

    /**
     * 按id修改订单状态为发货中
     * @param id 订单id
     */
    public void send(Integer id);

    /**
     * 按id修改订单状态为已完结
     * @param id 订单id
     */
    public void complete(Integer id);

}
